package top.ochiamalu.aioj.service;

import top.ochiamalu.aioj.domain.entity.Email;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * 电子邮件服务
 *
 * @author ochiamalu
 * @date 2025/03/31
 */
public interface EmailService extends IService<Email> {

    /**
     * 验证邮箱
     *
     * @param token 验证token
     * @return boolean
     */
    boolean verifyEmail(String token);

    /**
     * 发送验证电子邮件
     *
     * @param toEmail         到电子邮件
     * @param verificationUrl 验证网址
     */
    void sendVerificationEmail(String toEmail, String verificationUrl);

    /**
     * 修改主电子邮件
     *
     * @return {@link Boolean }
     */
    Boolean modifyPrimaryEmail(Long emailId);

    /**
     * 重新发送验证电子邮件
     *
     * @param emailId 电子邮件id
     * @return {@link Boolean }
     */
    Boolean resendVerificationEmail(Long emailId);

    /**
     * 删除电子邮件
     *
     * @param emailId 电子邮件id
     * @return {@link Boolean }
     */
    Boolean deleteEmail(Long emailId);
}
